Thumbnail-image selection of applications

ABSTRACT

This document describes techniques and apparatuses enabling thumbnail-image selection of applications. In some embodiments, these techniques and apparatuses enable a user interface having selectable thumbnail images for applications not currently exposed on a display. The techniques and apparatuses may enable selection of this user interface through a simple gesture that is both easy-to-use and remember. Further, selection of applications not currently exposed on the display may be selected through thumbnail images representing each application&#39;s application interface as it will appear on selection.

BACKGROUND

Conventional techniques for selecting an application that does not havean interface currently presented on a display are often confusing, takeup valuable display space, or cannot be universally applied acrossdifferent devices. Some conventional techniques, for example, enableselection of an application through onscreen controls in a persistenttask bar. These onscreen controls, however, take up valuable displayreal estate.

Some other conventional techniques enable selection of an applicationthrough hardware, such as hot keys and buttons. At best these techniquesrequire users to remember what key, key combination, or hardware buttonto select. Even in such a case, users often accidentally selectincorrect keys or buttons. Further, in many cases hardware-selectiontechniques cannot be universally applied, as hardware on computingdevices can vary by device model, generation, vendor, or manufacturer.In such cases, either the techniques will not work or work differentlyacross different computing devices. This exacerbates the problem ofusers needing to remember the correct hardware configuration, as manyusers have multiple devices, and so may need to remember differenthardware selections for different devices. Further still, for manycomputing devices hardware selection forces users to engage a computingdevice outside the user's normal flow of interaction, such as when atouch-screen device requires a user to change his or her mental andphysical orientation from display-based interactions to hardware-basedinteractions.

SUMMARY

This document describes techniques and apparatuses enablingthumbnail-image selection of applications. In some embodiments, thesetechniques and apparatuses enable a user interface having selectablethumbnail images for applications not currently exposed on a display.The techniques and apparatuses may enable selection of this userinterface through a simple gesture that is both easy-to-use andremember. Further, selection of applications not currently exposed onthe display may be selected through thumbnail images representing eachapplication's application interface as it will appear on selection.

This summary is provided to introduce simplified concepts forthumbnail-image selection of applications that are further describedbelow in the Detailed Description. This summary is not intended toidentify essential features of the claimed subject matter, nor is itintended for use in determining the scope of the claimed subject matter.Techniques and/or apparatuses enabling thumbnail-image selection ofapplications are also referred to herein separately or in conjunction asthe “techniques” as permitted by the context.

BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments enabling thumbnail-image selection of applications, alongwith other embodiments enabling other techniques, are described withreference to the following drawings. The same numbers are usedthroughout the drawings to reference like features and components:

FIG. 1 illustrates an example system in which techniques forthumbnail-image selection of applications can be implemented.

FIG. 2 illustrates an example method for enabling edge gestures that canbe used to select to switch back to a previously-interacted-withapplication, the edge gestures being approximately perpendicular to anedge in which the gesture begins.

FIG. 3 illustrates an example tablet computing device having atouch-sensitive display presenting an immersive interface.

FIG. 4 illustrates the example immersive interface of FIG. 3 along withexample edges.

FIG. 5 illustrates the example immersive interface of FIGS. 3 and 4along with angular variance lines from a perpendicular line and a linefrom a start point to a later point of a gesture.

FIG. 6 illustrates the edges of the immersive interface shown in FIG. 4along with two regions in the right edge.

FIG. 7 illustrates a tile-based application-selection interfacepresented by a system-interface module in response to an edge gesturemade over the immersive interface and webpage of FIG. 3.

FIG. 8 illustrates an example method for enabling edge gesturesincluding determining an interface to present based on some factor ofthe gesture.

FIG. 9 illustrates an example method enabling expansion of, or ceasingpresentation of, an application interface presented in response to anedge gesture or presentation of another application interface.

FIG. 10 illustrates a laptop computer having a touch-sensitive displayhaving a windows-based email interface and two immersive interfaces.

FIG. 11 illustrates the interfaces of FIG. 10 along with two gestureshaving a start point, later points, and one or more successive points.

FIG. 12 illustrates the windows-based email interface of FIGS. 10 and 11along with an email handling interface presented in response to an edgegesture.

FIG. 13 illustrates the interfaces of FIG. 12 along with anadditional-email-options interface presented in response to a gesturedetermined to have a successive point a preset distance from the edge.

FIG. 14 illustrates a method for switching back to apreviously-interacted-with application using a queue.

FIG. 15 illustrates an example interaction order in which a userinteracts with various applications.

FIG. 16 illustrates the immersive interface of FIG. 3 along with athumbnail image of an application interface of a prior application.

FIG. 17 illustrates a method for switching back to apreviously-interacted-with application, which may or may not use aqueue.

FIG. 18 illustrates the immersive interface of FIGS. 3 and 16, twoprogressive presentations, and two gesture portions.

FIG. 19 illustrates a method enabling thumbnail-image selection ofapplications.

FIG. 20 illustrates a thumbnail-image-based application-selection userinterface over the immersive interface and webpage of FIG. 3.

FIG. 21 illustrates a method enabling thumbnail-image selection ofapplications, the thumbnail images presented and selected through one ormore mouse-based gestures.

FIG. 22 illustrates an example menu enabling selection to present anapplication interface at multiple sizes and/or locations.

FIG. 23 illustrates a method enabling thumbnail-image selection ofapplications, the thumbnail images presented responsive to an edgegesture.

FIG. 24 illustrates an example device in which techniques forthumbnail-image selection of applications can be implemented.

DETAILED DESCRIPTION Overview

This document describes techniques and apparatuses enablingthumbnail-image selection of applications. These techniques, in someembodiments, enable a user to quickly and easily select applications.

Consider a case where a user visits a shopping website and finds a toyhorse for his niece's birthday, then interacts with a localword-processing document, then visits the same shopping website andfinds coloring books for his niece's birthday, then visits asocial-networking website, and then visits a web-enabled radio website.Assume that the user, when listening to songs on the radio website,decides to revisit the shopping website to buy the toy horse.

The user may, for example, simply select, though a gesture starting atan edge of his display and “swiping” away from that edge into thedisplay, to quickly see at a large or thumbnail size, thesocial-networking website. The user may swipe again to revisit theshopping website having the coloring books and so forth until the pagehaving the toy horse appears. The techniques, however, may also orinstead permit the user to see multiple thumbnail images at once, theimages representing how the application's interface will appear onselection. Thus, with a simple gesture selecting to see these thumbnailimages, the techniques may present thumbnails showing a picture of thetoy horse as it will be shown in the shopping website, theword-processing document that the user last opened (rather than an iconfor word-processing application) in a thumbnail image, another thumbnailfor the shopping website showing the coloring books, and a thumbnailimage showing the social-networking website as it will be presented ifselected. In so doing, the user may easily see which webpage has the toyhorse and so quickly and easily select that webpage. On selection of thethumbnail having the toy horse, the techniques present the shoppingwebsite showing the toy horse rather than the coloring books.

This is but one example of many ways in which the techniques enablingthumbnail-image selection of applications, others of which are describedbelow.

Example System

FIG. 1 illustrates an example system 100 in which techniques forthumbnail-image selection of applications can be embodied. System 100includes a computing device 102, which is illustrated with six examples:a laptop computer 104, a tablet computer 106, a smart phone 108, aset-top box 110, a desktop computer 112, and a gaming device 114, thoughother computing devices and systems, such as servers and netbooks, mayalso be used.

Computing device 102 includes computer processor(s) 116 andcomputer-readable storage media 118 (media 118). Media 118 includes anoperating system 120, windows-based mode module 122, immersive modemodule 124, system-interface module 126, gesture handler 128,application manager 130, and one or more applications 132. Applicationmanager 130 includes or has access to an application queue 134 and/or anapplication group 136. Application group 136 includes one or more ofapplications 132, each of which has an application interface 138. One ormore thumbnail images 140 are maintained based on application interfaces138 for those applications in application group 136.

Thumbnail images 140 provide some indication of how an applicationinterface associated with the application will appear or recentlyappeared (if previously interacted with by the user). In someembodiments, thumbnails images 140 are a smaller or lower-resolutionimage of the respective application interface as the respectiveapplication interface will appear on selection of thumbnail image 140 oras the respective application interface last appeared. These smaller orlower-resolution images may include a portion of the applicationinterface rather than all of the application interface, such as toremove advertisements or other portions of the application interface.The remaining portion may then be reduced in size or may be small enoughwithout reduction. Note also that thumbnail image 140 may be identical,other than size, to the application interface.

Further still, thumbnail image 140 may include moving items, videos,animations, and so forth as they will be or were shown, though often ina small or lower-resolution. Thus, if the toy horse of the above examplewas shown trotting as an animation or in a video clip, thumbnail image140 may show this trotting at a smaller size.

Computing device 102 also includes or has access to one or more displays142 and input mechanisms 144. Four example displays are illustrated inFIG. 1. Input mechanisms 144 may include gesture-sensitive sensors anddevices, such as touch-based sensors and movement-tracking sensors(e.g., camera-based), as well as mice (free-standing or integral with akeyboard), track pads, and microphones with accompanying voicerecognition software, to name a few. Input mechanisms 144 may beseparate or integral with displays 142; integral examples includegesture-sensitive displays with integrated touch-sensitive ormotion-sensitive sensors.

Windows-based mode module 122 presents application interfaces 138through windows having frames. These frames may provide controls throughwhich to interact with application 132 and/or controls enabling a userto move and resize the window.

Immersive mode module 124 provides an environment by which a user mayview and interact with one or more of applications 132 throughapplication interfaces 138. In some embodiments, this environmentpresents content of, and enables interaction with, applications withlittle or no window frame and/or without a need for a user to manage awindow frame's layout or primacy relative to other windows (e.g., whichwindow is active or up front) or manually size or position applicationinterfaces 138.

This environment can be, but is not required to be, hosted and/orsurfaced without use of a windows-based desktop environment. Thus, insome cases immersive mode module 124 presents an immersive environmentthat is not a window (even one without a substantial frame) andprecludes usage of desktop-like displays (e.g., a taskbar). Furtherstill, in some embodiments this immersive environment is similar to anoperating system in that it is not closeable or capable of beingun-installed. While not required, in some cases this immersiveenvironment enables use of all or nearly all of the pixels of a displayby applications. Examples of immersive environments are provided belowas part of describing the techniques, though they are not exhaustive orintended to limit the techniques described herein.

System-interface module 126 provides one or more interfaces throughwhich interaction with operating system 120 is enabled, such as anapplication-launching interface, a start menu, or a system tools oroptions menu, to name just a few.

Operating system 120, modules 122, 124, and 126, as well as gesturehandler 128 and application manager 130 can be separate from each otheror combined or integrated in any suitable form.

Example Methods

Example methods 200, 800, and 900 address edge gestures, example methods1400 and 1700 address switching back to a previously-interacted withapplication, and methods 1900, 2100, and 2300 address thumbnail-imageselection of applications. Any one or more of methods 200, 800, 900,1400, and 1700 may be used separately or in combination with, in wholeor in part, methods 1900, 2100, and/or 2300. An edge gesture may be usedto select to switch back to a prior application or select to present auser interface having selectable thumbnail images, as but two exampleways in which the various methods can be combined or act complimentary,though use of the edge gesture is not required by methods 1400, 1700,1900, 2100, and/or 2300.

FIG. 2 depicts a method 200 for enabling edge gestures based on the edgegesture being approximately perpendicular to an edge in which thegesture begins. In portions of the following discussion reference may bemade to system 100 of FIG. 1, reference to which is made for exampleonly.

Block 202 receives a gesture. This gesture may be received at variousparts of a display, such as over a windows-based interface, an immersiveinterface, or no interface. Further, this gesture may be made andreceived in various manners, such as a pointer tracking a movementreceived through a touch pad, mouse, or roller ball or a physicalmovement made with arm(s), finger(s), or a stylus received through amotion-sensitive or touch-sensitive mechanism.

By way of example consider FIG. 3, which illustrates a tablet computingdevice 106. Tablet 106 includes a touch-sensitive display 302 showndisplaying an immersive interface 304 that includes a webpage 306. Aspart of an ongoing example, at block 202 gesture handler 128 receivesgesture 308 as shown in FIG. 3.

Block 204 determines whether a start point of the gesture is at an edge.As noted above, the edge in question can be an edge of an applicationinterface, whether immersive or windows-based, and/or of a display. Insome cases, of course, an edge of an application interface is also anedge of a display. The size of the edge can vary based on variousfactors about the display or interface. A small display or interface mayhave a smaller size in absolute or pixel terms than a large display orinterface. A highly sensitive input mechanism permits a smaller edge aswell. Example edges are rectangular and vary between one and twentypixels in one dimension and an interface limit of the interface ordisplay in the other dimension, though other sizes and shapes, includingconvex and concave edges may instead be used.

Continuing the ongoing example, consider FIG. 4, which illustratesimmersive interface 304 and gesture 308 of FIG. 3 as well as left edge402, top edge 404, right edge 406, and bottom edge 408. For visualclarity webpage 306 is not shown. In this example the dimensions of theinterface and display are of a moderate size, between that of smartphones and that of many laptop and desktop displays. Edges 402, 404,406, and 408 have a small dimension of twenty pixels, an area of eachshown bounded by dashed lines at twenty pixels from the display orinterface limit at edge limit 410, 412, 414, and 416, respectively.

Gesture handler 128 determines that gesture 308 has a start point 418and that this start point 418 is within left edge 402. Gesture handler128 determines the start point in this case by receiving data indicating[X,Y] coordinates in pixels at which gesture 308 begins and comparingthe first of these coordinates to those pixels contained within eachedge 402-408. Gesture handler 128 often can determine the start pointand whether it is in an edge faster than a sample rate, thereby causinglittle or no performance downgrade from techniques that simply passgestures directly to an exposed interface over which a gesture is made.

Returning to method 200 generally, if block 204 determines that thestart point of the gesture is not at an edge, method 200 proceeds alonga “No” path to block 206. Block 206 passes the gestures to an exposedapplication interface, such as an underlying interface over which thegesture was received. Altering the ongoing example, assume that gesture308 was determined not to have a start point within an edge. In such acase gesture handler 128 passes buffered data for gesture 308 toimmersive application interface 304. After passing the gesture, method200 ends.

If block 204 determines that the start point of the gesture is in anedge, method 200 proceeds along a “Yes” path to block 208. Block 208responds to the positive determination of block 204 by determiningwhether a line from the start point to a later point of the gesture isapproximately perpendicular from the edge.

Block 208, in some embodiments, determines the later point used. Gesturehandler 128, for example, can determine the later point of the gesturebased on the later point being received a preset distance from the edgeor the start point, such as past edge limit 410 for edge 402 or twentypixels from start point 418, all of FIG. 4. In some other embodiments,gesture handler 128 determines the later point based on it beingreceived a preset time after receipt of the start point, such an amountof time slightly greater than used generally by computing device 102 todetermine that a gesture is a tap-and-hold or hover gesture.

For the ongoing embodiment, gesture handler 128 uses a later-receivedpoint of gesture 308 received outside of edge 402 so long as thatlater-received point is received within a preset time. If no point isreceived outside of the edge within that preset time, gesture handler128 proceeds to block 206 and passes gesture 308 to immersive interface304.

Using the start point, block 208 determines whether a line from thestart point to the later point of the gesture is approximatelyperpendicular to the edge. Various angles of variance can be used inthis determination by block 208, such as five, ten, twenty, or thirtydegrees.

By way of example, consider an angle of variance of thirty degrees fromperpendicular. FIG. 5 illustrates this example variance, showingimmersive interface 304, gesture 308, left edge 402, left edge limit410, and start point 418 of FIGS. 3 and 4 along with a thirty-degreevariance lines 502 from perpendicular line 504. Thus, gesture handler128 determines that line 506 from start point 418 to later point 508(which is at about twenty degrees from perpendicular) is approximatelyperpendicular based on being within the example thirty-degree varianceline 502.

Generally, if block 208 determines that the line is not approximatelyperpendicular to the edge, method 200 proceeds along a “No” path toblock 206. As noted in part above, block 208 may also determine that alater point or other aspect of a gesture disqualifies the gesture.Examples include when a later point is within the edge, such as due to ahover, tap, press-and-hold, or up-and-down gesture (e.g., to scrollcontent in the application interface), or when the gesture is set to bea single-input gesture and a second input is received (e.g., a firstfinger starts at an edge but a second finger then lands anywhere).

If block 208 determines that the line is approximately perpendicularbased a later point outside the edge, method 200 proceeds along a “Yes”path to block 210.

Block 210 responds to the positive determination of block 208 by passingthe gesture to an entity other than the exposed application interface.This entity is not an application interface over which the gesture wasreceived, assuming it was received over an application interface at all.Block 210 may determine to which entity to pass the gesture as well,such as based on an edge or region of an edge in which the start pointof the gesture is received. Consider FIG. 6, for example, whichillustrates immersive interface 304 and edges 402, 404, 406, and 408 ofFIG. 4 but adds top region 602 and bottom region 604 to right edge 406.A start point in top region 602 can result in a different entity (oreven a same entity but a different application interface provided inresponse) than a start point received to bottom region 604. Likewise, astart point in top edge 404 can result in a different entity orinterface than left edge 402 or bottom edge 408.

In some cases, this entity is an application associated with theapplication interface. In such a case, passing the gesture to the entitycan be effective to cause the application to present a secondapplication interface enabling interaction with the application. Thus, amedia player playing a movie can present a second application interfaceenabling selection of subtitles or a director's commentary. Thiscapability is permitted in FIG. 1, where one of applications 132 caninclude or be capable of presenting more than one application interface138. Thus, block 210 can pass the gesture to system-interface module126, the one of applications 132 currently presenting the applicationinterface, or another of applications 132, to name just threepossibilities.

Concluding the ongoing embodiment, at block 210 gesture handler 128passes gesture 308 to system-interface module 126. System-interfacemodule 126 receives the buffered portion of gesture 308 and continues toreceive the rest of gesture 308 as it is made by the user. FIG. 7illustrates a possible response upon receiving gesture 308, showing anapplication-selection interface 702 presented by system-interface module126 and over immersive interface 304 and webpage 306 from FIG. 3.Application-selection interface 702 enables selection of various otherapplications and their respective interfaces at selectable applicationtiles 704, 706, 708, and 710.

The example application-selection interface 702 is an immersiveapplication interface presented using immersive mode module 124, thoughthis is not required. Presented interfaces may instead be windows-basedand presented using windows-based module 122. Both of these modules areillustrated in FIG. 1.

Block 210 may also or instead determine to pass the gesture to differententities and/or interfaces based on other factors about the gesturereceived. Example factors are described in greater detail in method 800below.

Note that method 200 and other methods described hereafter can beperformed in real-time, such as while a gesture is being made andreceived. This permits, among other things, an application interfacepresented in response to a gesture to be presented prior to completionof the gesture. Further, the application interface can be presentedprogressively as the gesture is received. This permits a user experienceof dragging out the application interface from the edge as the gestureis performed with the application interface appearing to “stick” to thegesture (e.g., to a mouse pointer or person's finger making thegesture).

FIG. 8 depicts a method 800 for enabling edge gestures includingdetermining an interface to present based on some factor of the gesture.In portions of the following discussion reference may be made to system100 of FIG. 1, reference to which is made for example only. Method 800may act wholly or partly separate from or in conjunction with othermethods described herein.

Block 802 determines that a gesture made over an application interfacehas a start point at an edge of the application interface and a laterpoint not within the edge. Block 802 may operate similarly to or useaspects of method 200, such as determining a later point on which tobase block 802's determination. Block 802 may act differently as well.

In one case, for example, block 802 determines that a gesture is asingle-finger swipe gesture starting at an edge of an exposed immersiveapplication interface and having a later point not at the edge but notbased on an angle of the gesture. Based on this determination, block 802proceeds to block 804 rather than pass the gesture to the exposedimmersive application interface.

Block 804 determines which interface to present based on one or morefactors of the gesture. Block 804 may do so based on a final orintermediate length of the gesture, whether the gesture is single ormulti-point (e.g., a single-finger or multi-finger gesture), or a speedof the gesture. Thus, block 804 may determine to present a start menu inresponse to a multi-finger gesture, an application-selection interfacein response to a relatively short single-finger gesture, or asystem-control interface permitting selection to shut down computingdevice 102 in response to relatively long single-finger gesture, forexample. To do so, gesture handler 128 may determine the length of thegesture or a number of inputs (e.g., fingers). In response, block 806presents the determined application interface.

Assume, by way of example, that gesture handler 128 determines, based ona factor of the gesture, to present an application interface enablinginteraction with operating system 120. In response, system-interfacemodule 126 presents this application interface. Presentation of theapplication interface can be similar to manners described in othermethods, such as with a progressive display of application-selectionuser interface 702 of FIG. 7.

Following method 200 and/or method 800 in whole or in part, thetechniques may proceed to perform method 900 of FIG. 9. Method 900enables expansion of an application interface, presentation of anotherinterface, or ceasing presentation of the application interfacepresented in response to an edge gesture.

Block 902 receives a successive point of the gesture and afterpresentation of at least some portion of the second applicationinterface. As noted in part above, methods 200 and/or 800 are able topresent or cause to be presented a second application interface, such asa second application interface for the same application associated witha current application interface, a different application, or a systeminterface.

By way of example, consider FIG. 10, which illustrates a laptop computer104 having a touch-sensitive display 1002 displaying a windows-basedemail interface 1004 and two immersive interfaces 1006 and 1008.Windows-based email interface 1004 is associated with an applicationthat manages email, which can be remote or local to laptop computer 104.FIG. 10 also illustrates two gestures, 1010 and 1012. Gesture 1010proceeds in a straight line while gesture 1012 reverses back (shown withtwo arrows to show two directions).

FIG. 11 illustrates gesture 1010 having a start point 1102, a laterpoint 1104, and a successive point 1106, and gesture 1012 having a samestart point 1102, a later point 1108, and a first successive point 1110,and a second successive point 1112. FIG. 11 also shows a bottom edge1114, a later-point area 1116, and an interface-addition area 1118.

Block 904 determines, based on the successive point, whether the gestureincludes a reversal, an extension, or neither. Block 904 may determine areversal by determining that a successive point is at the edge or iscloser to the edge than a prior point of the gesture. Block 904 maydetermine that the gesture extends based on the successive point being apreset distance from the edge or the later point. If neither of these isdetermined to be true, method 900 may repeat blocks 902 and 904 toreceive and analyze additional successive points until the gesture ends.If block 904 determines that there is a reversal, method 900 proceedsalong “Reversal” path to block 906. If block 904 determines that thegesture is extended, method 900 proceeds along an “Extension” path toblock 908.

In the context of the present example, assume that gesture handler 128receives first successive point 1110 of gesture 1012. Gesture handler128 then determines that first successive point 1110 is not at edge1114, is not closer than a prior point of the gesture to edge 1114(e.g., is not closer than later point 1108), and is not a presetdistance from the edge or later point by not being withininterface-addition region 1118. In such a case method 900 returns toblock 902.

On a second iteration of block 902, assume that gesture handler 128receives second successive point 1112. In such a case, gesture handler128 determines that second successive point 1112 is closer to edge 1114than first successive point 1110 and thus gesture 1012 includes areversal. Gesture handler 128 then proceeds to block 906 to cease topresent the second application interface previously presented inresponse to the gesture. By way of example, consider FIG. 12, whichillustrates an email handling interface 1202. In this example case ofblock 906, gesture handler 128 causes the email application to cease topresent interface 1202 in response to a reversal of gesture 1012 (notshown removed).

Block 908, however, presents or causes presentation of a thirdapplication interface or expansion of the second application interface.Continuing the ongoing example, consider FIG. 13, which illustratesadditional-email-options interface 1302 in response to gesture 1010determined to have successive point 1106 a preset distance from edge1114, in this case being within interface-addition region 1118 of FIG.11. This region and preset distance can be set based on a size of theapplication interface previously presented in response to the gesture.Thus, a user wishing to add additional controls may simply extend thegesture past the application interface presented in response to anearlier portion of the gesture.

Method 900 can be repeated to add additional application interfaces orexpand a presented application interface. Returning to the exampleinterface 702 of FIG. 7, for example, gesture handler 128 can continueto add interfaces or controls to interface 702 as gesture 308 extendspast interface 702, such as by presenting an additional set ofselectable application tiles. If gesture 308 extends past the additionaltiles, gesture handler 128 may cause system-interface module 126 topresent another interface adjacent the tiles to enable the user toselect controls, such as to suspend, hibernate, switch modes (immersiveto windows-based and the reverse), or shut down computing device 102.

While the above example application interfaces presented in response toan edge gesture are opaque, they may also be partially transparent. Thiscan be useful by not obscuring content. In the movie example describedabove, an application interface presented can be partially transparentthereby permitting the movie to be only partially obscured during use ofthe application interface. Similarly, in the example of FIGS. 12 and 13,interfaces 1202 and 1302 may be partially transparent, thereby enablinga user to see the text of the email while also selecting a control inone of the interfaces.

As noted above, example methods 200, 800, and 900 address edge gesturesand are described prior to methods 1400 and 1700, which addressswitching back to previously-interacted-with applications, which are inturn described prior to methods 1900, 2100, and 2300, which addressselection of applications using thumbnail images. Any one or more ofthese methods may be used separately or in combination with, in whole orin part, any other methods.

FIG. 14 depicts a method 1400 for switching back to apreviously-interacted-with application using a queue. In portions of thefollowing discussion reference may be made to system 100 of FIG. 1,methods 200, 800, and/or 900, and example embodiments described above,reference to which is made for example only.

Block 1402 maintains a queue of multiple interacted-with applications,the queue arranged by most-recently-interacted-with toleast-recently-interacted-with applications other than a currentapplication. Consider, for example, FIG. 15, which illustrates aninteraction order 1502 in which a user interacts with variousapplications. First, the user interacts with a web-searching application1504 through its interface. Second, the user interacts with aweb-enabled media application 1506 through a web browser. Third, theuser interacts with a local (non-web) photo application 1508 through itsinterface. Fourth, the user interacts with a social-networkingapplication 1510 through the web browser. Fifth, the user returns tointeracting with the web-enabled media application 1506. Sixth, the userinteracts with a web-enabled news application 1512 again through the webbrowser.

For the first interaction no queue is maintained as no otherapplications have been interacted with prior to this first interaction.For the second through sixth interactions of interaction order 1502,consider queues 1514, 1516, 1518, 1520, and 1522, which correspond toeach interaction in interaction order 1502 after the first interaction,respectively. Queues 1514 to 1522 are example iterations of applicationqueue 134 maintained by application manager 130, both of FIG. 1.

As shown in FIG. 15, application manager 130 keeps application queue 134up-do-date based on a user's interactions. Queue 1522, for example,includes media application 1506 as the most-recently-interactedapplication, followed by social-networking application 1510, photoapplication 1508, and ending with web-searching application 1504. As theuser interacts with media application 1506 twice (at the second andfifth interaction) application manager 130 removes it from applicationqueue 134 at the fifth interaction and reorders the other applicationsto reflect an up-to-date order of interactions but excludingcurrently-interacted-with applications.

Block 1404 receives a gesture or gesture portions. This gesture orgesture portions can include one or more of the various gestures orportions described elsewhere herein. In some embodiments, gestureportions are received, each portion being part of one gesture and eachresulting in presentation of an application in the queue.

Continuing the ongoing embodiment, consider again FIG. 3, whichillustrates tablet computing device 106 having touch-sensitive display302 shown displaying immersive interface 304 including webpage 306. Forthis example, assume that immersive interface 304 is associated withnews application 1512 and that webpage 306 is content from newsapplication 1512.

As part of this example, at block 1404, gesture handler 128 receivesgesture 308 as shown in FIG. 3, which gesture handler 128 passes toapplication manager 130. For the ongoing example, assume that gesture308 is determined to be associated with switching back to apreviously-interacted-with application rather than some other functionor application.

Block 1406, responsive to receiving the gesture or gesture portions,proceeds through the queue to another application of the multipleinteracted-with applications. Thus, on receiving the gesture or gestureportion(s), application manager 130 may precede to the first, and thusthe most-recently-interacted-with of the applications of applicationqueue 134. In some embodiments, on receiving two gestures or portions,application manager 130 may proceed to the secondmost-recently-interacted-with application of application queue 134,though method 1400 may do so by repeating blocks 1404, 1406 and/or 1408,and so forth as described below.

Continuing the ongoing embodiment, assume that gesture 308 is receivedafter the sixth interaction at which time the currently-interacted-withapplication is news application 1512 and that application queue 134 isup-to-date and represented by queue 1522 of FIG. 15. In such a case,application manager 130 proceeds to media application 1506 on receivingthe gesture or gesture portion.

Block 1408 presents an application interface associated with the otherapplication. This application interface, in some embodiments, is thesame application interface through which interaction with theapplication was previously made. In some embodiments, the applicationinterface is presented as a thumbnail or transparent overlay above thecurrently presented application interface. Application manager 130presents this application interface alone or in combination with theassociated application, such as by causing the associated application topresent the application interface with which the user last interacted.

For this example, application manager 130 presents a thumbnail image ofthe application interface for the application progressively as gesture308 is received and then expands the thumbnail to encompass theavailable real estate of the display when the gesture ends. Applicationmanager 130 thereby replaces webpage 306 in immersive interface 304 orreplaces immersive interface 304 with another interface, which can beimmersive or windows-based.

This is illustrated in FIG. 16 with thumbnail image 1602 of anapplication interface of media application 1506 presented over immersiveinterface 304 and webpage 306 of news application 1512. After gesture308 ends, thumbnail image 1602 expands into full-size applicationinterface 1604, replacing webpage 306 in immersive interface 304. Thisis but one example manner for presenting the application interface forthe selected application, other manners for responding progressively orotherwise are described elsewhere herein.

In some embodiments, block 1408 shrinks the current applicationinterface to a second thumbnail image and passes the second thumbnailimage toward a region of a display from which the first-mentionedthumbnail image is progressively presented. Thus, block 1408 expandsthumbnail image 1602 into full-size application interface 1604 whileshrinking webpage 306 to a thumbnail image and passing that thumbnail tothe edge from which thumbnail image 1602 was selected.

During the presentation of the application interface at block 1408,another gesture or gesture portion may be received, returning to block1404. In some cases, the other gesture or gesture portion is receivedwithin an amount of time while the application interface is presented byblock 1408. Following the return to block 1404, block 1406 may thenproceed to yet another or subsequent application of the multipleinteracted-with applications. Continuing this progression, block 1408then presents an application interface associated with the subsequentapplication of the multiple interacted-with applications.

Thus, by repeating blocks 1404, 1406, and 1408, application interfacesassociated with previously interacted-with applications can besuccessively presented. In some cases, an application interfaceassociated with a previously-interacted with application can bepresented responsive to each gesture received. In the context of thepresent example, when another gesture is received while presenting theapplication interface of media application 1506, an applicationinterface associated with social-networking application 1510 (the secondmost-recently interacted with application of queue 1522) is presented.Receiving yet another gesture or gesture portion during the presentationof the application interface associated with social-networkingapplication 1510 results in a presentation of an application interfaceassociated with photo application 1508 (the third most-recentlyinteracted with application of queue 1522) and so forth.

Following this switch from presenting a current application topresenting another selected, prior application, block 1410 updates thequeue responsive to interaction with, or a time period passing duringpresentation of, the application interface associated with the otherapplication. In some cases a prior application may be selected and thenanother quickly selected after it, effectively a scanning through of theapplications in the queue. In such cases, block 1410 may forgo updatingthe queue, as a quick viewing may not be considered an interaction.

Example interactions with which application manager 130 updatesapplication queue 134 include an explicit selection to interact with thenewly presented interface, such as to control playback or editinformation relating to currently playing media using controls shown infull-size application interface 1604 of a media player. In other casesan interaction is determined based on a time period passing. Assume, forexample, that the news application's webpage is presented on selectionrather than being the current application. After some period, such asone, two, or three seconds, for example, application manager 130determines that the delay is effectively an interaction based on alikelihood that the user is reading the news article in the webpage.Similarly, presentation of an application interface for a mediaapplication at block 1408 that is playing media and remains on thedisplay without another selection of applications in application queue134 can also be considered an interaction.

As noted in part above, application queue 134 can be circular. In sodoing, selection of applications is not stopped but rather rolls if auser reaches a least-recently-interacted with application of applicationqueue 134. For example, on selecting to switch back to a priorapplication from social-networking application 1510 and thus using queue1518, switching back once results in selecting photo application 1508,twice results in media application 1506, and three times toweb-searching application 1504. A fourth selection to switch backreturns, in a circular fashion, to again result in presenting photoapplication 1508.

Method 1400 describes various ways in which the techniques can enableselection of previously-interacted-with applications and determine whichto present based on a queue. Method 1700 may operate in conjunction withmethod 1400 and other methods described herein, though using a queue isnot required. Therefore, method 1400 is not intended to limit thetechniques as described in example method 1700.

FIG. 17 depicts a method 1700 for switching back to apreviously-interacted-with application, which may or may not use aqueue. In portions of the following discussion reference may be made tosystem 100 of FIG. 1, methods 200, 800, 900, 1400, and exampleembodiments described above, reference to which is made for exampleonly.

Block 1702 enables selection of a previously-interacted-with applicationthrough a gesture made over a current application interface associatedwith a current application. Block 1702 may do so in various mannersdescribed above, such as with an edge gesture or portion thereof, as butone example.

Block 1704, responsive to receiving the gesture and without furtherselection, presents a previous application interface associated with thepreviously-interacted-with application.

Assume, for example, that a portion of a gesture is received associatedwith selection of a prior application, such as an edge gesture startingat an edge of the current application interface and proceedingapproximately perpendicularly away from the edge. In response, block1704 presents the application interface for thepreviously-interacted-with application or a thumbnail image of theinterface, or some indicator that selection has successfully been madealong with an indicator of the application or the interface selected.

Example thumbnail images or indicators include any of selectableapplication tiles 704, 706, 708, and 710 of FIG. 7 some of which includea thumbnail image of an interface while others indicate the applicationselected. Another example is thumbnail image 1602 of FIG. 16.

Block 1704 presents the application interface of the selected,previously-interacted-with application, as shown in FIG. 16 at full-sizeapplication interface 1604. In so doing, block 1704 may enableinteraction with photo application 1508 through immersive interface 304without further selection. Thus, a user after selecting, with as littleas one gesture, a prior application may interact without needing to makeanother selection. The user need not select to exit anapplication-selection mode, for example, or make the presented interface“live” or primary or on top of the stack. Simply put, the techniquesenable selection of a prior application and further interaction withthat prior application with a single input.

In this example of FIG. 16, immediately after full-size applicationinterface 1604 is presented and replaces webpage 306, a next input toimmersive interface 304 is passed immediately to photo application 1508.Thus, a tap, hot key, or other input is passed directly to photoapplication 1508, thereby enabling an immediate response by photoapplication 1508 to the input.

In some embodiments, the gesture made over the current applicationinterface includes portions, each of which indicates a selection of aprior application. In such a case, block 1704 presents the previousapplication interface in response to the first portion and then,responsive to block 1702 receiving the second portion of the gesture,presents a further-previous application interface associated with afurther previously-interacted-with application, and so forth.

This is illustrated in FIG. 18, which presents immersive interface 304of FIG. 16 (shown twice for visual clarity), and ways in which block1704 can respond to multiple gestures or portions of a single gesture.FIG. 18 illustrates two progressive presentations, 1802 and 1804, andgesture 1806 having two gesture portions 1806-1 and 1806-2,respectively. First progressive presentation 1802 illustrates a dragfrom a left edge of immersive interface 304 of thumbnail image 1602, andthus selection of the previously-interacted with photo application 1508.Note that thumbnail image 1602 “sticks” to gesture portion 1806-1. Notealso that gesture 1806, unlike gesture 308 of FIGS. 3 and 16, returns tothe left edge. In response, rather than gesture 308 ending and full-sizeapplication interface 1604 replacing webpage 306, gesture portion 1806-1of gesture 1806 returns to the edge at which it began. In this casethumbnail image 1602 is progressively displayed with gesture portion1806-1 but then disappears when gesture portion 1806-1 returns to theedge or another invalid gesture ending position.

Gesture 1806 continues with second portion 1806-2. In response, block1704 presents second progressive presentation 1804, illustrating asecond drag from the left edge of immersive interface 304. Here a socialnetwork thumbnail image 1808 of a further prior application,social-networking application 1510, is progressively presented. Gesture1806 returns to the left edge as part of second portion 1806-2. Inresponse, block 1704 drops off thumbnail image 1808 when gesture portion1806-2 returns to the edge. This is but one example of ways in which thetechniques enable users to select and view prior applications, even allof the previously-interacted-with applications, with only a singlegesture. At any point in this example, gesture 1806 may end or indicateselection to present the full application interface for the selectedapplication, at which time block 1704 presents the application interface(e.g., full-size application interface 1604 of FIG. 16 or a fullapplication interface for the social-networking application).

The preceding discussion describes some methods in which the techniquesmay enable switching back to a previously-interacted-with application.Other methods describe ways in which the techniques enable and/or useedge gestures. Still other methods addressing thumbnail-image selectionof applications are described below. These methods are shown as sets ofblocks that specify operations performed but are not necessarily limitedto the order shown for performing the operations by the respectiveblocks.

FIG. 19 depicts a method 1900 enabling thumbnail-image selection ofapplications. In portions of the following discussion reference may bemade to system 100 of FIG. 1, methods 200, 800, 900, 1400, 1700, andexample embodiments described above, reference to which is made forexample only.

Block 1902 maintains thumbnail images for applications. Theseapplications, as noted herein, may be previously-interacted-with,recently interacted with, set by a user or other entity for inclusionbased on settings or user interest or popularity, whether or not theyhave been recently interacted with, and so forth. They may be arrangedin various manners, such as the order set for applications inapplication queue 134 noted above, though this is not required. Further,a number of applications can vary based on screen real estate, such asthree thumbnail images for a smartphone, six for a tablet, and twelvefor a large-display laptop or desktop computer, to name just a few.

Assume, for example, that manager 130 maintains up to six thumbnailimages 140 based on a size of screen real estate for table computer 106.Assume also that manager 130 maintains up to six applications inapplication group 136, the six applications selected as the last fourapplications that are most-recently interacted with but that are notcurrently on screen, and two applications based on often being commonlyused by a user associated with tablet computer 106. Thus, manager 130builds the applications of application group 136 with the first fourhaving an order similar to that of application queue 134 of FIG. 1 asdescribed elsewhere herein, and, following these four applications, twothat are often used but are not currently on screen and are not of thefirst four.

Block 1904 receives a gesture or gesture portion selecting presentationof the thumbnails. These gestures or gesture portions can include one ormore of the various gestures or gestures portions described elsewhereherein, such as a pointer tracking a movement received through variousmouse devices (e.g., a touch pad, roller-ball mouse, track-ball mouse,pencil-tip mouse, traditional mouse) or a physical movement made witharm(s), finger(s), or a stylus received through a motion-sensitive ortouch-sensitive mechanism. This and prior or subsequent portions of agesture may have, but are not required to have, a start point at an edgeof a display, a later point not at the edge of the display, and asuccessive point at the edge of the display. Thus, a gesture havingmultiple portions in this case would look something like a multi-loopspiral, multiple circles, or a back-and-forth (e.g., zigzag) where eachloop, circle, or back-and-forth starts, leaves, and returns to an edgeof an application interface or display.

By way of example, consider a case where a gesture portion is part of anongoing gesture that has a prior portion. Assume also that the priorportion selected one of applications 132, such as is shown in FIG. 16.In such a case, the portion of the gesture is received associated withselection of a prior application using an edge gesture starting at anedge of the current application interface and proceeding approximatelyperpendicularly away from the edge. In response, manager 130 presents alarge thumbnail image for the previously-interacted-with application.This is shown with thumbnail image 1602 of FIG. 16.

The gesture portion received at block 1904, however, selects to ceasepresentation of the thumbnail image associated with the application,here thumbnail image 1602. In this example, the gesture portion returnstoward the edge. In response, manager 130 ceases to present thumbnailimage 1602 and determines that selection of a user interface havingmultiple selectable thumbnail images is intended.

Block 1906, responsive to receiving a first gesture or a gestureportion, presents a user interface on a display, the user interfacehaving thumbnail images for applications, each of the thumbnail images avisual representation of an application interface for a respective oneof the applications. Block 1906 may present the user interface invarious manners, such as progressively from an edge of the displaysimilar to as described for large thumbnail image 1602 above, thoughthis is not required.

Continuing the ongoing example, consider FIG. 20, which illustrateswebpage 306 in immersive interface 304, over which a user interface 2002is presented. User interface 2002 includes thumbnail images 2004, 2006,2008, 2010, 2012, and 2014, one for each of applications 132 ofapplication group 136.

Block 1908 receives selection of a selected thumbnail image of thethumbnail images and through a second gesture or a later gestureportion, the second gesture or later gesture portion dragging theselected thumbnail image from the user interface to a region of thedisplay.

The region to which the thumbnail is dragged can vary and result indifferent effects. The regions may include edges of a display, such assome of those shown in FIG. 6, for example. The regions may also orinstead include those represented by a window or an immersiveenvironment, such as email interface 1004 and two immersive interfaces1006 and 1008 of FIG. 10. Effects based on a region to which a thumbnailis dragged are described as part of block 1910 below.

Block 1910, responsive to receiving the selection and based on theregion of the display to which the selected thumbnail image is dragged,presents the application interface associated with the selectedthumbnail image effective to enable interaction with a selectedapplication associated with the selected thumbnail image.

Block 1910 presents the application interface at a size and/or locationbased in part on the region. For example, responsive to receiving a dragof thumbnail 2008 of FIG. 20 to a center of immersive environment 304 ofFIG. 20, application manager 130 replaces webpage 306 with a full-sizeapplication interface representing an expansion of thumbnail 2008.

By way of another example, responsive to receiving a drag of a thumbnailto an edge, application manager 130 may snap the application interfaceto that edge and at a size of whatever application is currently at theedge or based on a previously set size for that window or immersivearea. An application interface is “snapped” to a location and/or size bybeing automatically presented at the size or location without requiringa user to manually move to the location and size the applicationinterface and/or precisely locate or size the application interface.Thus, a user may move a thumbnail image to a region roughly at an edgeof a display after which application manager 130 precisely locates theapplication interface at the edge and at the appropriate (larger) size.The snap can be shown gradually, such as with the thumbnail image movingfrom the user interface (if selected without being moved) to thelocation and/or the thumbnail image being gradually enlarged to the sizeof the application interface, though this is not required. Examples ofsome of the many ways that the techniques may present an applicationinterface associated with a selected thumbnail are shown in FIGS. 10 and16.

Block 1910 may replace a prior-presented application interfaceassociated with a prior application with a selected application'sinterface, assuming another application interface is presented.Concluding the ongoing example, assume that a user drags thumbnail 2010over some portion of immersive interface 304 and then ends the gestureby lifting off his or her finger from the display or clicking on a mousebutton or tapping a touch pad. In response, application manager 130removes webpage 306 and presents an application interface, similar tothe result, but not the gesture received, of FIG. 16 shown at full-sizeapplication interface 1604.

Optionally, the techniques may alter application group 136 effective toalter the thumbnails that are or will be presented should the userinterface again be selected. Thus, on selecting thumbnail 2010 in theexample above, on selecting thumbnail images later, block 1906 may ceaseto present thumbnail 2010 and instead present a thumbnail representingwebpage 306.

Method 1900 enables selection of thumbnail images as well as the userinterface presenting them through gestures, which may be mouse-based orotherwise. Method 2100 enables selection with mouse-based gestures, atleast in part. As noted above, mouse-based gestures can use variousdevices, such as a touch pad, roller-ball mouse, traditional mouse, andso forth. These mouse-based gestures present a mouse pointer or otherselector visible on a display through which a user interacts with adevice.

Block 2102 maintains thumbnail images for applications, such as in thevarious manners set forth for block 1902 above.

Block 2104 receives a first mouse-based gesture. This first mouse-basedgesture may be one of many gestures set forth above. Optionally, thetechniques may indicate, prior to receiving the first mouse-basedgesture, that the user interface is selectable, the indication showingindicia for each of the thumbnail images at an edge of the display.

By way of example, consider FIG. 22, which illustrates immersiveinterface 304 having webpage 306, a user interface indicia 2202, andthumbnail indicia 2204, 2206, 2208, 2210, 2212, and 2214. These indiciamay be useful to lead a user to decide whether or not presentation of auser interface having thumbnails is desired by the user. Presentation ofthe indicia may be responsive to a user action or otherwise. Thus, onmoving a pointer to an edge of the display, the techniques may presentthe indicia. After a further action, such as moving the pointer from atop or bottom corner of that edge toward the indicia, the user interfaceis presented as described below. Assume that a gesture selecting thethumbnail is received, such as through a movement of a pointer 2216toward the indicia or a selection at the edge in which the indicia areshown (e.g., a click of a mouse, tap on a touchpad, or hover with apointer).

Block 2106, responsive to receiving a first mouse-based gesture,presents a user interface on a display, the user interface havingthumbnail images for applications, each of the thumbnail images a visualrepresentation of an application interface for a respective one of theapplications. One example interface is shown at user interface 2002 inFIG. 22.

Block 2108 receives selection of a selected thumbnail image of thethumbnail images and through a second mouse-based gesture. Exampleselections include a selection and drag, through a mouse-based gesture,from the user interface to a region of the display, as described inmethod 1900. Other selections include a hover, tap, or mouse click onthe thumbnail image. Continuing the above example, assume that a hoverof pointer 2216 is received over thumbnail image 2010 of FIG. 20, asshown in FIG. 22.

Block 2110, responsive to selection of the selected thumbnail image,presenting a menu within, over, or adjacent to the user interface, themenu enabling selection to present the application interface associatedwith the selected thumbnail image at a first display size or locationand a second display size or location. An example menu is shown in FIG.22 at menu 2218. Menu 2218 enables selection of multiple sizes and/orlocations at which an application interface can be presented, here witha snap left control 2220, a full size control 2222, a snap right control2224, and a remove control 2226.

Note that selection of snap left control 2220 selects to present theapplication interface snapped automatically to the left side of thedisplay, whether in an immersive or windows-based environment. Anexample in an immersive environment is shown at immersive interface 1006in FIG. 13. Similarly, snap right control 2224 results in theapplication interface snapped to the right side of the display, such asshown at email interface 1004 in FIG. 13. Remove control 2226 removesthe associated thumbnail (here thumbnail 2010) from the user interface(here user interface 2002).

Block 2112, responsive to selection of the first or second display sizeor location, presents the application interface associated with theselected thumbnail image and at the selected first or second displaysize or location within the display, the presentation effective toenable interaction with a selected application associated with theselected thumbnail image. Concluding the ongoing example, assume that auser selects full size control 2222 using pointer 2216 (not shown). Inresponse, application manager 130 presents the application interfaceassociated with the selected thumbnail 2010, here full-size applicationinterface 1604, as shown in FIG. 16.

Methods 1900 and 2100 enables selection of thumbnail images as well asthe user interface presenting them as noted above. FIG. 23 illustratesmethod 2300, which addresses a more-detailed example of selectingapplications through thumbnail images using one or more edge gestures.Method 2300 may be used, in whole or in part, in conjunction withmethods 1900 and/or 2100; method 2300 is not intended to limit theapplication of methods 1900 and 2100.

Block 2302 receives a gesture having a first portion starting at an edgeof a display, moving away from the edge, and made over a currentapplication interface associated with a current application withoutpresenting a visible, selectable control over the current applicationinterface or on the display presenting the current applicationinterface.

Block 2304, responsive to receiving the first portion of the gesture,presents a thumbnail image of the previous application interfaceprogressively with the first portion of the gesture as the gesture isreceived. Thereafter, block 2306 receives a second portion of thegesture that moves toward the edge.

Block 2308, responsive to receiving the second portion of the gesture,presents a user interface on the display, the user interface havingother thumbnail images for other applications, each of the otherthumbnail images a visual representation of an application interface fora respective one of the other applications.

Block 2310 receives selection of a selected thumbnail image of the otherthumbnail images and through a third portion of the gesture or anothergesture, the third portion of the gesture or the other gesture draggingthe selected thumbnail image from the user interface to a region of thedisplay.

Block 2312, responsive to receiving the selection and based on theregion of the display to which the selected thumbnail image is dragged,presents the application interface associated with the selectedthumbnail image, the presentation effective to enable interaction with aselected application associated with the selected other thumbnail image.Method 2300 may be performed in many of the various manners set forthabove.

The preceding discussion describes some methods in which the techniquesmay enable thumbnail-image selection of applications. Other methodsdescribe ways in which the techniques enable and/or use edge gesturesand/or switch back to previously-interacted-with applications. Aspectsof these methods may be implemented in hardware (e.g., fixed logiccircuitry), firmware, a System-on-Chip (SoC), software, manualprocessing, or any combination thereof. A software implementationrepresents program code that performs specified tasks when executed by acomputer processor, such as software, applications, routines, programs,objects, components, data structures, procedures, modules, functions,and the like. The program code can be stored in one or morecomputer-readable memory devices, both local and/or remote to a computerprocessor. The methods may also be practiced in a distributed computingenvironment by multiple computing devices.

Example Device

FIG. 24 illustrates various components of example device 2400 that canbe implemented as any type of client, server, and/or computing device asdescribed with reference to the previous FIGS. 1-23 to implementtechniques enabling edge gestures, switching back to apreviously-interacted-with application, and/or thumbnail-image selectionof applications. In embodiments, device 2400 can be implemented as oneor a combination of a system-on-chip (SoC), wired and/or wirelessdevice, as a form of television client device (e.g., television set-topbox, digital video recorder (DVR), etc.), consumer device, computerdevice, server device, portable computer device, user device,communication device, video processing and/or rendering device,appliance device, gaming device, electronic device, and/or as anothertype of device. Device 2400 may also be associated with a user (e.g., aperson) and/or an entity that operates the device such that a devicedescribes logical devices that include users, software, firmware, and/ora combination of devices.

Device 2400 includes communication devices 2402 that enable wired and/orwireless communication of device data 2404 (e.g., received data, datathat is being received, data scheduled for broadcast, data packets ofthe data, etc.). The device data 2404 or other device content caninclude configuration settings of the device, media content stored onthe device, and/or information associated with a user of the device.Media content stored on device 2400 can include any type of audio,video, and/or image data. Device 2400 includes one or more data inputs2406 via which any type of data, media content, and/or inputs can bereceived, such as user-selectable inputs, messages, music, televisionmedia content, recorded video content, and any other type of audio,video, and/or image data received from any content and/or data source.

Device 2400 also includes communication interfaces 2408, which can beimplemented as any one or more of a serial and/or parallel interface, awireless interface, any type of network interface, a modem, and as anyother type of communication interface. The communication interfaces 2408provide a connection and/or communication links between device 2400 anda communication network by which other electronic, computing, andcommunication devices communicate data with device 2400.

Device 2400 includes one or more processors 2410 (e.g., any ofmicroprocessors, controllers, and the like), which process variouscomputer-executable instructions to control the operation of device 2400and to enable techniques for thumbnail-image selection of applications.Alternatively or in addition, device 2400 can be implemented as aSystem-on-Chip (SoC) and/or with any one or combination of hardware,firmware, or fixed logic circuitry that is implemented in connectionwith processing and control circuits which are generally identified at2412. Although not shown, device 2400 can include a system bus or datatransfer system that couples the various components within the device. Asystem bus can include any one or combination of different busstructures, such as a memory bus or memory controller, a peripheral bus,a universal serial bus, and/or a processor or local bus that utilizesany of a variety of bus architectures.

Device 2400 also includes computer-readable storage media 2414, such asone or more memory devices that enable persistent and/or non-transitorydata storage (i.e., in contrast to mere signal transmission), examplesof which include random access memory (RAM), non-volatile memory (e.g.,any one or more of a read-only memory (ROM), flash memory, EPROM,EEPROM, etc.), and a disk storage device. A disk storage device may beimplemented as any type of magnetic or optical storage device, such as ahard disk drive, a recordable and/or rewriteable compact disc (CD), anytype of a digital versatile disc (DVD), and the like. Device 2400 canalso include a mass storage media device 2416.

Computer-readable storage media 2414 provides data storage mechanisms tostore the device data 2404, as well as various device applications 2418and any other types of information and/or data related to operationalaspects of device 2400. For example, an operating system 2420 can bemaintained as a computer application with the computer-readable storagemedia 2414 and executed on processors 2410. The device applications 2418may include a device manager, such as any form of a control application,software application, signal-processing and control module, code that isnative to a particular device, a hardware abstraction layer for aparticular device, and so on.

The device applications 2418 also include any system components ormodules to implement the techniques, such as device applications 2418including system-interface module 126, gesture handler 128, applicationmanager 130, and application(s) 132.

CONCLUSION

Although embodiments of techniques and apparatuses for thumbnail-imageselection of applications have been described in language specific tofeatures and/or methods, it is to be understood that the subject of theappended claims is not necessarily limited to the specific features ormethods described. Rather, the specific features and methods aredisclosed as example implementations enabling thumbnail-image selectionof applications.

What is claimed is:
 1. A computer-implemented method comprising:responsive to receiving a first gesture or a gesture portion, presentinga user interface on a display, the user interface having thumbnailimages for applications, each of the thumbnail images a visualrepresentation of an application interface for a respective one of theapplications; receiving a selection of one of the thumbnail images andthrough a second gesture or a later gesture portion, the second gestureor later gesture portion dragging the selected thumbnail image from theuser interface to a region of the display; and responsive to receivingthe selection and based on the region of the display to which theselected thumbnail image is dragged, presenting the applicationinterface associated with the selected thumbnail image, the presentingeffective to enable interaction with a selected application associatedwith the selected thumbnail image.
 2. A computer-implemented method asdescribed in claim 1, wherein the thumbnails are a smaller orlower-resolution image of the respective application interface as therespective application interface will appear responsive to selection ofthe thumbnail.
 3. A computer-implemented method as described in claim 1,wherein the thumbnails are a smaller or lower-resolution image of therespective application interface as the respective application interfacelast appeared.
 4. A computer-implemented method as described in claim 1,wherein one of the thumbnails includes a smaller or lower-resolutionvideo of a video that will appear responsive to the selection of the oneof the thumbnails.
 5. A computer-implemented method as described inclaim 1, wherein the region is an edge of the display and whereinpresenting the application interface snaps the application interface tothe edge.
 6. A computer-implemented method as described in claim 5,wherein the presenting presents the application interface within animmersive environment and having a previously set size.
 7. Acomputer-implemented method as described in claim 1, wherein the regionis not at an edge of the display and wherein presenting the applicationinterface presents the application on all or substantially all of thedisplay.
 8. A computer-implemented method as described in claim 1,wherein presenting the user interface progressively displays the userinterface starting at an edge of the display.
 9. A computer-implementedmethod as described in claim 8, wherein the first gesture or the gestureportion is an edge gesture received at the edge of the display fromwhich the user interface is progressively displayed.
 10. Acomputer-implemented method as described in claim 1, wherein the gestureportion is part of an ongoing gesture, the ongoing gesture having aprior portion, the prior portion selecting one of the applicationsarranged in a queue, responsive to which a queued thumbnail imageassociated with the application in the queue is presented, and where thegesture portion selects to cease presentation of the thumbnail imageassociated with the application.
 11. A computer-implemented method asdescribed in claim 1, wherein the gesture portion is part of an ongoinggesture, the ongoing gesture having a first prior portion, the firstprior portion having a start point at an edge of the display, a secondprior portion having a later point not at the edge of the display, andthe gesture portion following the second prior portion and having asuccessive point at the edge of the display.
 12. A computer-implementedmethod as described in claim 1, wherein the first gesture and the secondgesture or the gesture portion and the later gesture portion arereceived through a mouse or a touchpad.
 13. A computer-implementedmethod as described in claim 1, further comprising, prior to presentingthe user interface, maintaining the thumbnail images for theapplications based on the applications being previously interacted with,or commonly used or previously selected by a user associated with adevice with which the display is associated.
 14. A computer-implementedmethod as described in claim 1, wherein presenting the applicationinterface replaces a previously-presented application interfaceassociated with a prior application, and responsive to receiving a thirdgesture or another gesture portion, presenting a second user interface,the second user interface having a thumbnail image associated with thepreviously-presented application and the thumbnail images other than theselected thumbnail image.
 15. A computer-implemented method comprising:responsive to receiving a first mouse-based gesture, presenting a userinterface on a display, the user interface having thumbnail images forapplications, each of the thumbnail images a visual representation of anapplication interface for a respective one of the applications;receiving selection of a selected thumbnail image of the thumbnailimages and through a second mouse-based gesture; responsive to selectionof the selected thumbnail image, presenting a menu within, over, oradjacent to the user interface, the menu enabling selection to presentthe application interface associated with the selected thumbnail imageat a first display size or location or a second display size orlocation; and responsive to selection of the first or second displaysize or location, presenting the application interface associated withthe selected thumbnail image and at the selected first or second displaysize or location within the display, the presenting effective to enableinteraction with a selected application associated with the selectedthumbnail image.
 16. A computer-implemented method as described in claim15, wherein the thumbnails are a smaller or lower-resolution image ofthe respective application interface as the respective applicationinterface will appear responsive to selection of the thumbnail.
 17. Acomputer-implemented method as described in claim 15, wherein the menufurther enables selection to close the selected application or removethe selected thumbnail image from the user interface.
 18. Acomputer-implemented method as described in claim 15, furthercomprising, prior to receiving the first mouse-based gesture, presentingan indication that the user interface is selectable, the indicationshowing indicia for each of the thumbnail images at an edge of thedisplay.
 19. A computer-implemented method as described in claim 15,wherein the selected first or second display size or location is a sizethat is smaller than full size and presenting the application interfacesnaps the application interface to an edge of the display and within animmersive environment.
 20. One or more computer-readable storage mediahaving computer-readable instructions thereon that, when executed,perform operations comprising: receiving a gesture having a firstportion starting at an edge of a display, moving away from the edge, andmade over a current application interface associated with a currentapplication without presenting a visible, selectable control over thecurrent application interface or on the display presenting the currentapplication interface; responsive to receiving the first portion of thegesture, presenting a thumbnail image of the previous applicationinterface progressively with the first portion of the gesture as thegesture is received; receiving a second portion of the gesture thatmoves toward the edge; responsive to receiving the second portion of thegesture, presenting a user interface on the display, the user interfacehaving other thumbnail images for other applications, each of the otherthumbnail images a visual representation of an application interface fora respective one of the other applications; receiving selection of oneof the thumbnail images and through a third portion of the gesture oranother gesture, the third portion of the gesture or the other gesturedragging the selected thumbnail image from the user interface to aregion of the display; and responsive to receiving the selection andbased on the region of the display to which the selected thumbnail imageis dragged, presenting the application interface associated with theselected thumbnail image, the presenting effective to enable interactionwith a selected application associated with the selected other thumbnailimage.